Kanzi 提供多种测量应用程序性能的方法并显示各种性能参数。使用这些方式和参数提高应用程序的性能。
要在 Kanzi Studio 中分析您的应用程序的性能和内部结构,请在预览 (Preview) 中点击 进入 分析 (Analyze) 模式,然后右键点击 并选择:
glDrawElements
和 glDrawArrays
)。getBatchCount()
。getTriangleCount()
。getTextureSwitchCount()
。getFramebufferSwitchCount()
。getShaderSwitchCount()
。getUniformSendCount()
。getBufferSwitchCount()
。getHeavyweightCallCount()
。KzuMessageDispatcher
中已注册的计时器处理程序数量。计时器处理程序数量过多会降低您应用程序的性能。kzuMessageDispatcherGetTimerSubscriptionCount()
函数,获取 Kanzi Engine API 中计时器的订阅数量。KzuTaskScheduler
中的重复任务数量。大量重复任务会降低您应用程序的性能。kzuTaskSchedulerGetRecurringTaskCount()
函数,获取 Kanzi Engine API 中重复任务的数量。getActiveTimelinePlaybackCount()
函数。getTimelinePlaybackCount()
。要查看您的 Kanzi 应用程序的整体性能:
PerformanceInfoLevel = 2
onConfigure()
函数中启用性能 HUD (Performance HUD) 显示configuration.performanceInfoLevel = ApplicationProperties::PerformanceInfoLevelFull;)
application.hpp
中,通过调用 getPerformanceInfoLevel()
和 setPerformanceInfoLevel()
函数启用性能 HUD (Performance HUD) 显示:ApplicationProperties::PerformanceInfoLevel getPerformanceInfoLevel() const { return m_applicationProperties.performanceInfoLevel; } void setPerformanceInfoLevel(ApplicationProperties::PerformanceInfoLevel level) { m_applicationProperties.performanceInfoLevel = level; }
application.hpp
中的 getFramesPerSecond()
函数,从 Kanzi Engine 检索当前帧速率值。您可以通过调用 getEngine()
从应用程序检索 Kanzi Engine。application.hpp
中的 getLastFrameTime()
函数。请参阅应用程序配置参考。
在 application.cfg 文件或 onConfigure()
函数的应用程序节点中,您可以设置 Kanzi 以打印至调试控制台:
过度绘制 (Overdraw) visualization indicates areas where Kanzi renders multiple times to the same pixel. Lighter green color indicates higher amount of overdraw. Kanzi uses the stencil buffer to calculate how many times it draws to the same pixel. If you are using the stencil buffer to render your content, the 过度绘制 (Overdraw) visualization can return unexpected results.
The overdraw visualization does not show:
过度绘制 (Overdraw) visualization works only when you use the OpenGL backend. You can set the 预览 (Preview) backend in the > in the 预览 OpenGL ES 包装 (Preview OpenGL ES Wrapper) property.
To view overdraw in your application, in the Kanzi Studio 预览 (Preview) click to enter the 分析 (Analyze) mode, right-click , and select 过度绘制 (Overdraw).
帧缓冲对象之间的切换可能导致某些平台上性能显著下降。Kanzi 将节点渲染到纹理时的条件可能很复杂。例如,旋转、缩放或不透明度均可能导致渲染到纹理出现。
要查看节点是否渲染到纹理中并导致帧缓冲对象切换,请在预览 (Preview) 中点击 进入分析 (Analyze) 模式,右键点击,然后选择帧缓冲区对象 (Framebuffer objects)。
预览 (Preview) 用透明的橙色条纹突出显示渲染到纹理的层。
您可以在 Kanzi Studio 中看到应用程序 Kanzi 中有哪些 2D 节点渲染成合成渲染目标。
要在预览 (Preview) 中查看使用了阿尔法混合的 2D 节点,在预览 (Preview) 中点击 进入分析 (Analyze) 模式,右键点击,然后选择透明度 (Transparency)。
预览 (Preview) 突出 Kanzi 用半透明蓝色条纹渲染为合成渲染目标的节点。